package com.hzlj.position.config.common.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fz.common.base.core.JacksonTypeHandlerIgnoreNull;
import com.hzlj.position.config.common.dto.common.LocateTimesDTO;
import lombok.Data;
import lombok.ToString;

import java.util.Date;

/**
 * 设备绑定表(JzJbxxDeviceBind)实体类
 *
 * @author makejava
 * @since 2024-06-17 14:35:06
 */
@Data
@ToString
@TableName(value = "jz_jbxx_device_bind", autoResultMap = true)
public class JzJbxxDeviceBind {
    /**
     * 主键
     */
    @TableId(type = IdType.INPUT, value = "id")
    private String id;
    /**
     * 矫正ID(jz_jbxx)
     */
    @TableField(value = "jz_id")
    private String jzId;
    /**
     * 设备编号
     */
    @TableField(value = "device_code")
    private String deviceCode;
    /**
     * 定位渠道类型,dict-LOCATE_CHANNEL_TYPE
     */
    @TableField(value = "channel_type")
    private String channelType;
    /**
     * 定位渠道,dict-LOCATE_CHANNEL
     */
    @TableField(value = "channel")
    private String channel;
    /**
     * 是否在线
     */
    @TableField(value = "online", keepGlobalFormat = true)
    private Boolean online;
    /**
     * 状态更新时间
     */
    @TableField(value = "online_update_time")
    private Date onlineUpdateTime;
    /**
     * 定位间隔周期[单位：秒]
     */
    @TableField(value = "locate_interval")
    private Integer locateInterval;
    /**
     * 定位时间段,json-LocateTimesDTO
     */
    @TableField(value = "locate_times", typeHandler = JacksonTypeHandlerIgnoreNull.class)
    private LocateTimesDTO locateTimes;
    /**
     * 首次定位时间
     */
    @TableField(value = "first_locate_time")
    private Date firstLocateTime;
    /**
     * 是否有效
     */
    @TableField(value = "valid")
    private Boolean valid;
    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;
    /**
     * 更新人
     */
    @TableField(value = "updater_uid")
    private String updaterUid;
    /**
     * 更新人姓名
     */
    @TableField(value = "updater_name")
    private String updaterName;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;
    /**
     * 创建人
     */
    @TableField(value = "creator_uid")
    private String creatorUid;
    /**
     * 更新人姓名
     */
    @TableField(value = "creator_name")
    private String creatorName;
}
